package Controleur;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

import DAO.DAOStation;
import DAO.DAOStationnement;
import DAO.DAOVelo;
import Modele.Stationnement;
import Modele.Velo;
import Vue.ConfirmerAjout;
import Vue.StationFrame;

/**
 * Définit l'écouteur de confirmation de l'ajout
 */
public class ConfirmerAjoutV_AjListener implements ActionListener {

	/** La vue de confirmation de l'ajout */
	private ConfirmerAjout confirm;
	/** L'identifiant de la station */
	private int idStation;
	/** La vue de la station */
	private StationFrame st_frame;

	/**
	 * Instancie l'écouteur
	 * 
	 * @param p_confirm
	 *            La vue de confirmation de l'ajout
	 * @param st_frame
	 *            La vue de la station
	 * @param idStation
	 *            L'identifiant de la station
	 */
	public ConfirmerAjoutV_AjListener(ConfirmerAjout p_confirm,
			StationFrame st_frame, int idStation) {
		this.st_frame = st_frame;
		this.confirm = p_confirm;
		this.idStation = idStation;
	}

	/**
	 * Action lors de l'évenement
	 * 
	 * @param arg0
	 *            Objet de l'évenement
	 */
	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		if (DAOStation.getStationById(idStation).getNbMaxVelo() > DAOStation
				.getStationById(idStation).getStationnementsActuels().size()) {
			// Ajoute un vélo.
			Velo v = new Velo(true, new Date(), true);
			DAOVelo.insertVelo(v);

			v = DAOVelo.getAllVelo().get(DAOVelo.getAllVelo().size() - 1);

			// Ajoute un stationnement
			Stationnement sment = new Stationnement(v.getIdVelo(), idStation,
					v.getDateAchat(), null);
			DAOStationnement.insertStationnement(sment);

			st_frame.setS_nbVeloActuels(sment.getStation()
					.getStationnementsActuels().size());
			st_frame.remplirField();
		}
		confirm.close();
	}

}
